import { Injectable } from '@angular/core';

@Injectable()
export class I18nService {
  private currentI18n;
  private validI18ns:Array<{i18n:string, text: string}> = [
    {
      i18n: 'en-US',
      text: 'English'
    },
    {
      i18n: 'zh-CN',
      text: ''
    },
    {
      i18n: 'zh-HK',
      text: ''
    },
    {
      i18n: 'zh-TW',
      text: ''
    },
    {
      i18n: 'da-DK',
      text: ''
    },
    {
      i18n: 'nl-NL',
      text: ''
    },
    {
      i18n: 'fr-FR',
      text: ''
    },
    {
      i18n: 'de-DE',
      text: ''
    },
    {
      i18n: 'it-IT',
      text: ''
    },
    {
      i18n: 'pl-PL',
      text: ''
    },
    {
      i18n: 'pt-BR',
      text: ''
    },
    {
      i18n: 'pt-PT',
      text: ''
    },
    {
      i18n: 'ru-RU',
      text: ''
    },
    {
      i18n: 'es-419',
      text: ''
    },
    {
      i18n: 'sv-SE',
      text: ''
    },
    {
      i18n: 'fi-FI',
      text: ''
    },
    {
      i18n: 'nb-NO',
      text: ''
    },
    {
      i18n: 'ja-JP',
      text: ''
    },
    {
      i18n: 'ko-KR',
      text: ''
    },
  ];

  constructor() {

  }

  getCurrentI18n (urlI18n, defaultI18n):string {
    // url中有多语言的值，优先使用
    if (urlI18n && this.checkI18nValid(urlI18n)) {
      return this.currentI18n = urlI18n;
    }
    // 已经缓存了的多语言
    if (this.currentI18n) {
      return this.currentI18n;
    }

    return defaultI18n;
  }

  private checkI18nValid (i18n):boolean {
    let validI18ns = this.validI18ns;
    for (let i = 0, j = validI18ns.length; i < j; i++) {
      let data = validI18ns[i];
      if (i18n === data.i18n) {
        return true;
      }
    }
    return false;
  }

}
